<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>排序-冒泡排序</title>
</head>
<body>

</body>
<script>
    /*冒泡排序*/
    var arr = [12, 34, 3, 15, 90, 89, 23];
    // 第一轮
    //   3 12 ......
    //   3 12 15
    ///        5 15.......
    /*   for (var j=0;j<arr.length-1;j++) {
           for (var i = 0; i < arr.length - 1-j; i++) {
               if (arr[i] > arr[i + 1]) {
                   swap(arr, i, i + 1);
               }
           }
       }*/

    function swap(arr, a, b) {
        var temp = arr[a];
        arr[a] = arr[b];
        arr[b] = temp;
    }

    function sort(arr, callback) {
        return callback(arr);
    }

    /**
     * 高阶函数
     *     一个函数的返回值是函数
     *     或者 参数是函数
     * */
    sort(arr, function (arr) {
        for (var j = 0; j < arr.length - 1; j++) {
            for (var i = 0; i < arr.length - 1 - j; i++) {
                if (arr[i] > arr[i + 1]) {
                    swap(arr, i, i + 1);
                }
            }
        }
        return arr;
    })

    console.log(arr);


</script>
</html>